#ifndef __M_MSG_H_
#define __M_MSG_H_
/*
    日志消息类：
    意义：中间存储一条日志消息所需的各项要素
        1. 日志输入时间         ...
        2. 日志等级             过滤日志类型
        3. 发生错误的文件名      ...
        4. 错误行号             定位出错位置
        5. 日志器类型           过滤日志模块
        6. 线程id               过滤线程
        7. 日志主体内容
*/
#include "level.hpp"
#include "util.hpp"
#include <string>
#include <thread>

namespace log
{
    struct LogMsg
    {
        time_t _time;         // 日志产生时间
        Level::value _level;  // 日志等级
        std::string _file;    // 错误文件名
        size_t _line;         // 错误行号
        std::string _logger;  // 日志器类型
        std::thread::id _tid; // 出错的线程id
        std::string _payload; // 日志内容

        LogMsg(Level::value level, const std::string file, size_t line,
               const std::string logger, const std::string msg)
            : _time(util::Date::now()), _level(level), _file(file), _line(line),
              _logger(logger), _tid(std::this_thread::get_id()), _payload(msg)
        {
        }
    };

}

#endif